Digital communication systems transmit and receive signals which have digital information therein. Typically, such signals include the data to be transmitted plus additional portions needed to ensure accurate communication, such as synchronization signals (to synchronize the receiver with the transmitter) and error correcting codes (to ensure that the received data has not been corrupted and to correct at least part of any corrupted data).
There are many types of digital communication systems. One common one is that of a spread spectrum system. A conventional direct sequence spread spectrum signal can be viewed as the result of mixing a narrowband information-bearing signal with an informationless wideband (and constant envelope) "spreading" signal. If B.sub.i and B.sub.p denote the bandwidths of the information-bearing signal and the spreading signal, respectively, then the "processing gain" available to the receiver is G=B.sub.i /B.sub.p. The receiver synchronizes the incoming signal to a locally generated version of the spreading signal and mixes the received signal with the locally generated spreading signal, thereby removing the spreading signal from the received signal and "collapsing" the signal to the "information bandwidth" B.sub.i.
The spreading signal is typically a coded sequence of some kind, such as a pseudo-random code. The United States space program initially utilized a Type 1 Reed-Muller code for deep-space communications. In code division multiple access (CDMA) systems, the code is a variation of the Reed-Mullel codes.
In the IS-95 standard for CDMA systems, each user has an individual Walsh code and each base station has a pilot signal. The pilot signals of the base stations are based on a single pseudo-random code sequence but each pilot signal has a unique phase. When transmitting signals to a user, the pilot signal of the relevant base station is combined with the user's Walsh code to produce the spreading signal for that user.
Pseudo-random code sequences are generated by pseudo-random number (PN) generators, one of which, labeled 10, is shown in FIG. 1 to which reference is now made. PN generator 10 is formed of a shift register having a series of M flip-flops 12 concatenated together via summers 14, where M is typically 15. The value of the bit stored in the ith flip-flop is a.sub.i,t which, for simplicity is labeled a.sub.i. The set of a.sub.i at any time t is the "loading" of the PN generator 10 at time t.
The output c.sub.t of PN generator 10 for each time t is the value of a.sub.0 at time t, a bit of value 1 or 0. At the end of each cycle, the output c.sub.t is provided back into each summer 14 via a corresponding switch 16, thereby producing new values for the a.sub.i and a new value for c.sub.t.
Switches 16, also known as taps, have predetermined states h.sub.k and are either closed (h.sub.k =1) or open (h.sub.k =0). The initial switch ho is always closed and provides the output c.sub.t directly to the M-1th flip-flop 12. The pseudo-random code sequence p[t] is composed of PN symbols, the duration of each of which is termed a "chip". Each symbol of the sequence is defined by: EQU p[t]=(-1).sup.c.sbsp.t Equation 1
In order to synchronize the local version of the spreading signal with the original version, the transmitting unit additionally transmits the pilot signal, containing the code sequence. For simplicity, we assume that the transmitted signal is binary phase shift keying (BPSK) modulated.
The local unit then synchronizes its local code generator to the pilot signal after which, the local unit can despread the received information bearing signals. The pilot signal is also utilized to track variations in the transmission channel.
The received signal, after being down converted to a baseband signal and sampled at the output of a matched filter at a rate of one sample per chip is denoted by R[t] t= . . . ,-2,-1,0,1,2, . . . . The received signal consists of the pilot signal and the user data signals, both of which are transmitted by the transmitting unit, and interference terms caused by thermal noise and by signals transmitted by adjacent transmitting units.
For the purpose of acquiring the initial synchronization, only the pilot signal pilot[t] is of interest. For a BPSK signal, the pilot signal may be represented by: ##EQU1##
where p.sup.0 [t] is a PN sequence, .alpha..sub.l e.sup.j.phi..sbsp.l is the channel gain of the l-th signal reflection (called a "finger"), F denotes the number of fingers and .omega..sub.0 denotes the residual frequency drift after baseband down-conversion. Now, consider only the most significant finger (the one with the largest .alpha..sub.l) and denote it by .alpha.e.sup.j.phi.. Also, denote the contribution of all other fingers, the user data signals and other interferences by n[t]. Then R[t] is represented by: EQU R[t]=.alpha.p.sup.0 [t]e.sup.j(.omega..sbsp.0.sup.l+.phi.) +n[t]Equation 3
The acquisition problem is how to efficiently obtain the phase of the PN sequence (i.e. the current loading of the PN generator 10) given some measurement record R[t] t=1,2, . . . ,N.
Solutions to the acquisition problem are described in the book CDMA: Principles of Spread Spectrum Communication, by A. J. Viterbi, Addison-Wesley, 1995, in particular in section 3.4.3, pp. 58-59. The book is incorporated herein by reference.
The direct approach is to enumerate over all possible 2.sup.M -1 phases of the PN sequence (there are 2.sup.M possible initial loadings, but the zero loading is illegal since it produces an all zero sequence) and select the one which is optimal with respect to some criterion. This approach is computationally and time intensive due to the large number of possible PN loadings.
A possible refinement of this approach, discussed in the book CDMA: Principles of Spread Spectrum Communication, is to obtain the phase by using a two-stage (dual-dwell) search procedure, where the first stage enumerates over all possible PN phases and passes only those phases with metric values that are above some pre-specified threshold to the second stage. In the second stage, each phase hypothesis is examined more thoroughly (i.e., using a more computationally intensive criterion) in order to decide whether it is the true PN phase or not. The dual-dwell procedure is faster than the direct approach but still takes a significant amount of time.
When there is no frequency drift in the received samples R[t] (i.e., .omega..sub.0 =0), the optimal metric, under a white Gaussian noise assumption, whose absolute value needs to be maximized is a Maximum Likelihood metric, as follows: ##EQU2##
where R[1],R[2], . . . ,R[N] is the block of sampled data, sampled at the rate of one sample per chip, and p[t] is one possible PN sequence. In the dual dwell procedure, the size N of the block is relatively small in the first phase and larger in the second phase.
If the data might have a frequency drift, the metric should be insensitive to frequency drifts. The following differential metric has been suggested by M. H. Zarrabizadeh and E. S. Souza in the article "Analysis of a Differentially Coherent DS-SS Parallel Acquisition Receiver", IEEE Proceedings of the 45.sup.th Vehicular Technology Conference, Vol. 2, pp. 271-275, 1995 (the article is incorporated herein by reference): ##EQU3##
N.sub.c is the number of chips used for the coherent summation (e.g. the number of chips per symbol which is 64 in the IS-95 CDMA standard), and N.sub.s is the number of z[ ] variables used for creating the final metric. For example, N.sub.s is small (e.g. 5) for the first phase (dwell) and larger (e.g. 10) for the second phase.
The following articles and patents discuss transform domain methods for soft decoding of PN loadings and error correcting codes in general when BPSK signaling is used. The articles are incorporated herein by reference.
V. V. Losev and V. D. Dvornikov, "Determination of the Phase of a Pseudorandom Sequence From its Segment Using Fast Transforms", Radio Engineering and Electronic Physics, Vol. 26, No. 8, pp. 61-66, August 1981; PA1 M. Cohn and A. Lempel, "On Fast M-Sequence Transforms", IEEE Transactions on Information Theory, pp. 135-137, 1977; PA1 V. V. Losev and V. D. Dvornikov, "Recognition of Address Sequences Using Fast Transformations", Radio Engineering and Electronic Physics, Vol. 28, No. 8, pp. 62-69, August 1983; PA1 S. Z. Budisin, "Fast PN Sequence Correlation by Using FWT", IEEE Proceedings of the Mediterranean Electrotechnical Conference(MELECON), Lisbon, Portugal, April 1989, pp. 513-515; PA1 Y. Be'ery and J. Snyders, "Optimal Soft Decision Block Decoders Based on Fast Hadamard Transform", IEEE Transactions on Information Theory, Vol. 32,1986, pp. 355-364; and U.S. Pat. No. 5,463,657 to Rice. PA1 loads a local PN generator with an initial PN loading; PA1 loops on each of the datapoints of the received pilot signal and per loop: PA1 combines one partial possible loading s.sub.E with a datapoint of the received pilot signal and with a PN loading produced by the local PN generator thereby to update the u vector; PA1 steps the local PN generator to produce another PN loading; and PA1 provides the resultant u vector to the FHT unit. PA1 loops over plurality of drift loop values, the step of looping including the steps of a) loading a local PN generator with a different initial PN loading per loop value and b) generating an input signal which is insensitive to drift from the received pilot signal; PA1 loops on each of the datapoints of the input signal, the second step of looping including the steps of a) combining one partial possible loading s.sup.E with a datapoint of the input signal and with a PN loading produced by the local PN generator thereby to update the u vector and b) stepping the local PN generator to produce another PN loading.